JS 2009 (ES5)

Web Development - জাভাস্ক্রিপ্ট (JavaScript) জাভাস্ক্রিপ্ট আপডেট ভার্সন (JS Update Version) |
309
309

ECMAScript 5 (ES5) হল জাভাস্ক্রিপ্টের একটি গুরুত্বপূর্ণ ভার্সন যা ২০০৯ সালে প্রকাশিত হয়েছিল। ES5 পূর্ববর্তী ES3 এর উপর ভিত্তি করে এবং এতে অনেক নতুন বৈশিষ্ট্য এবং উন্নত ফিচার যুক্ত করা হয়েছে, যা জাভাস্ক্রিপ্ট ডেভেলপমেন্টকে আরও শক্তিশালী এবং কার্যকর করে তোলে। ES5 মূলত ব্রাউজারদের সমর্থনের জন্য ডিজাইন করা হয়েছিল এবং এটি বিভিন্ন বাগ ফিক্স, পারফরম্যান্স অপ্টিমাইজেশন এবং নতুন ফিচার প্রদান করে।


ES5 এর প্রধান বৈশিষ্ট্যসমূহ

স্ট্রিক মোড (Strict Mode)

স্ট্রিক মোড ES5 এ পরিচিত একটি নতুন ফিচার যা কোডের ত্রুটি ধরার ক্ষমতা বৃদ্ধি করে এবং কিছু অপ্রত্যাশিত আচরণ নিষ্ক্রিয় করে। এটি কোডের নিরাপত্তা এবং মান উন্নত করে।

স্ট্রিক মোড সক্রিয় করার উপায়:

"use strict";

function myFunction() {
    x = 10;  // ReferenceError: x is not defined
}
myFunction();

ব্যাখ্যা: স্ট্রিক মোডে, অপরিচিত ভেরিয়েবল ব্যবহার করলে ত্রুটি সৃষ্টি হয়, যা কোডের ভুলগুলো সহজে চিহ্নিত করতে সাহায্য করে।


ডেটা প্রোপার্টি (Data Properties)

ES5 এ ডেটা প্রোপার্টি নির্দিষ্ট করার জন্য Object.defineProperty() এবং Object.defineProperties() মেথড যুক্ত করা হয়েছে। এগুলো অবজেক্টের প্রপার্টিগুলোর গুণাবলী নির্ধারণ করতে ব্যবহৃত হয়, যেমন writable, enumerable, এবং configurable.

উদাহরণ:

let person = {};

Object.defineProperty(person, 'name', {
    value: 'Alice',
    writable: false,
    enumerable: true,
    configurable: false
});

console.log(person.name);  // আউটপুট: Alice

person.name = 'Bob';  // চেষ্টা করলে পরিবর্তন হবে না
console.log(person.name);  // আউটপুট: Alice

ব্যাখ্যা: এখানে, name প্রপার্টিটি অপরিবর্তনীয় (non-writable) করা হয়েছে, ফলে এর মান পরিবর্তন করা যায় না।


গেটার এবং সেটার (Getters and Setters)

ES5 এ অবজেক্টের প্রপার্টিগুলির উপর গেটার এবং সেটার মেথড সংজ্ঞায়িত করার সুবিধা যুক্ত করা হয়েছে। এটি ডেটা এক্সেস এবং মডিফিকেশনের নিয়ন্ত্রণ প্রদান করে।

উদাহরণ:

let person = {
    firstName: 'John',
    lastName: 'Doe',
    
    get fullName() {
        return `${this.firstName} ${this.lastName}`;
    },
    
    set fullName(name) {
        let parts = name.split(' ');
        this.firstName = parts[0];
        this.lastName = parts[1];
    }
};

console.log(person.fullName);  // আউটপুট: John Doe

person.fullName = 'Jane Smith';
console.log(person.firstName); // আউটপুট: Jane
console.log(person.lastName);  // আউটপুট: Smith

ব্যাখ্যা: এখানে, fullName প্রপার্টির জন্য গেটার এবং সেটার মেথড ব্যবহার করা হয়েছে, যা পুরো নাম একসাথে বা আলাদা করে সেট এবং গেট করতে সাহায্য করে।


নতুন অ্যারে মেথড

ES5 এ অ্যারের জন্য কিছু নতুন মেথড যুক্ত করা হয়েছে, যা ডেটা ম্যানিপুলেশনকে সহজ করে তোলে।

forEach()

forEach() মেথডটি অ্যারের প্রতিটি উপাদানের উপর নির্দিষ্ট একটি ফাংশন প্রয়োগ করে।

let numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(number) {
    console.log(number * 2);
});
// আউটপুট:
// 2
// 4
// 6
// 8
// 10

map()

map() মেথডটি অ্যারের প্রতিটি উপাদানের উপর নির্দিষ্ট একটি ফাংশন প্রয়োগ করে এবং নতুন একটি অ্যারে রিটার্ন করে।

let numbers = [1, 2, 3, 4, 5];
let doubled = numbers.map(function(number) {
    return number * 2;
});
console.log(doubled);  // আউটপুট: [2, 4, 6, 8, 10]

filter()

filter() মেথডটি নির্দিষ্ট একটি শর্ত পূরণ করে এমন উপাদানগুলোকে নির্বাচন করে একটি নতুন অ্যারে রিটার্ন করে।

let numbers = [1, 2, 3, 4, 5];
let even = numbers.filter(function(number) {
    return number % 2 === 0;
});
console.log(even);  // আউটপুট: [2, 4]

reduce()

reduce() মেথডটি অ্যারের উপাদানগুলিকে একটি একক মানে রূপান্তর করে।

let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce(function(accumulator, current) {
    return accumulator + current;
}, 0);
console.log(sum);  // আউটপুট: 15

Function.prototype.bind()

bind() মেথডটি একটি ফাংশনকে নির্দিষ্ট this কনটেক্সটে বাইন্ড করে এবং নতুন একটি ফাংশন রিটার্ন করে।

উদাহরণ:

let person = {
    name: 'Alice',
    greet: function() {
        console.log(`Hello, my name is ${this.name}`);
    }
};

let greet = person.greet.bind(person);
greet();  // আউটপুট: Hello, my name is Alice

ব্যাখ্যা: এখানে, greet ফাংশনটি person অবজেক্টের সাথে বাইন্ড করা হয়েছে, তাই এটি সঠিক this রেফারেন্স পায়।


JSON সমর্থন

ES5 এ JSON (JavaScript Object Notation) সমর্থন যুক্ত করা হয়েছে, যা ডেটা বিনিময়ের জন্য ব্যাপকভাবে ব্যবহৃত হয়। JSON.parse() এবং JSON.stringify() মেথডগুলি JSON ডেটা হ্যান্ডল করতে ব্যবহৃত হয়।

উদাহরণ:

let jsonString = '{"name": "John", "age": 30}';
let obj = JSON.parse(jsonString);
console.log(obj.name);  // আউটপুট: John

let newJsonString = JSON.stringify(obj);
console.log(newJsonString);  // আউটপুট: {"name":"John","age":30}

ব্যাখ্যা: JSON.parse() স্ট্রিংকে জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করে এবং JSON.stringify() অবজেক্টকে JSON স্ট্রিং এ রূপান্তর করে।


প্রোটোটাইপ এক্সটেনশন

ES5 এ Object.prototype এবং অন্যান্য প্রোটোটাইপের মাধ্যমে নতুন মেথড যোগ করার সুবিধা দেওয়া হয়েছে।

উদাহরণ:

if (!String.prototype.capitalize) {
    String.prototype.capitalize = function() {
        return this.charAt(0).toUpperCase() + this.slice(1);
    };
}

let word = "hello";
console.log(word.capitalize());  // আউটপুট: Hello

ব্যাখ্যা: এখানে, String প্রোটোটাইপে একটি নতুন capitalize মেথড যোগ করা হয়েছে, যা স্ট্রিংয়ের প্রথম অক্ষরকে বড় করে দেয়।


ES5 এর অন্যান্য বৈশিষ্ট্য

Object.create()

Object.create() মেথডটি একটি নতুন অবজেক্ট তৈরি করে যার প্রোটোটাইপ নির্দিষ্ট করা হয়।

let animal = {
    speak: function() {
        console.log(`${this.name} makes a sound.`);
    }
};

let dog = Object.create(animal);
dog.name = 'Buddy';
dog.speak();  // আউটপুট: Buddy makes a sound.

ব্যাখ্যা: এখানে, dog অবজেক্টটি animal অবজেক্টের প্রোটোটাইপ থেকে তৈরি করা হয়েছে, তাই এটি speak মেথড ব্যবহার করতে পারে।


Array.isArray()

Array.isArray() মেথডটি চেক করে যে একটি মান অ্যারে কিনা।

let arr = [1, 2, 3];
let obj = { a: 1 };

console.log(Array.isArray(arr));  // আউটপুট: true
console.log(Array.isArray(obj));  // আউটপুট: false

ব্যাখ্যা: Array.isArray() নির্ধারণ করে যে একটি নির্দিষ্ট মান অ্যারে কিনা, যা typeof ব্যবহার করে করা সম্ভব নয়।


Array.prototype.indexOf()

indexOf() মেথডটি একটি অ্যারে মধ্যে নির্দিষ্ট মানের প্রথম উপস্থিতির সূচক রিটার্ন করে। যদি মানটি না পাওয়া যায়, তবে এটি -1 রিটার্ন করে।

let fruits = ['apple', 'banana', 'cherry', 'banana'];

console.log(fruits.indexOf('banana'));  // আউটপুট: 1
console.log(fruits.indexOf('grape'));   // আউটপুট: -1

ব্যাখ্যা: indexOf() নির্দিষ্ট মানের প্রথম উপস্থিতির সূচক প্রদান করে, যা ডুপ্লিকেট মানের ক্ষেত্রে প্রথমটি নির্দেশ করে।


Array.prototype.lastIndexOf()

lastIndexOf() মেথডটি একটি অ্যারে মধ্যে নির্দিষ্ট মানের সর্বশেষ উপস্থিতির সূচক রিটার্ন করে।

let fruits = ['apple', 'banana', 'cherry', 'banana'];

console.log(fruits.lastIndexOf('banana'));  // আউটপুট: 3
console.log(fruits.lastIndexOf('grape'));   // আউটপুট: -1

ব্যাখ্যা: lastIndexOf() নির্দিষ্ট মানের সর্বশেষ উপস্থিতির সূচক প্রদান করে।


Object.keys()

Object.keys() মেথডটি একটি অবজেক্টের সকল enumerable প্রপার্টির কী তালিকা রিটার্ন করে।

let person = {
    name: 'Alice',
    age: 25,
    city: 'Dhaka'
};

console.log(Object.keys(person));  // আউটপুট: ['name', 'age', 'city']

ব্যাখ্যা: Object.keys() একটি অবজেক্টের সকল প্রপার্টির নামের একটি অ্যারে প্রদান করে।


ES5 এর প্রয়োজনীয়তা এবং উপকারিতা

ES5 এর মাধ্যমে জাভাস্ক্রিপ্টের কোড লেখার প্রক্রিয়া আরও নিরাপদ, কার্যকর এবং সংগঠিত হয়েছে। এর প্রধান উপকারিতা হলো:

  • নির্ভুলতা এবং সিকিউরিটি: স্ট্রিক মোড এবং ডেটা প্রোপার্টি নির্ধারণের মাধ্যমে কোডের ত্রুটি কমে এবং সিকিউরিটি বৃদ্ধি পায়।
  • পাঠযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা: গেটার, সেটার, এবং নতুন অ্যারে মেথডের মাধ্যমে কোড আরও পরিষ্কার এবং ম্যানেজেবল হয়।
  • পুনরায় ব্যবহারযোগ্যতা: Object.create() এবং ক্লাসের অনুরূপ বৈশিষ্ট্যগুলির মাধ্যমে কোডের পুনরায় ব্যবহার সহজ হয়।
  • ডেটা ম্যানিপুলেশন সহজ করা: নতুন অ্যারে মেথড এবং Number প্রোপার্টি ব্যবহার করে ডেটা ম্যানিপুলেশন আরও সহজ ও কার্যকর হয়।

সারাংশ

ECMAScript 5 (ES5) জাভাস্ক্রিপ্টের একটি মাইলস্টোন যা ভাষার ক্ষমতাকে বৃদ্ধি করে এবং ডেভেলপারদের জন্য নতুন সরঞ্জাম ও বৈশিষ্ট্য প্রদান করে। স্ট্রিক মোড, গেটার ও সেটার, নতুন অ্যারে মেথড, এবং JSON সমর্থনের মতো ফিচারগুলো কোড লেখাকে আরও শক্তিশালী, নিরাপদ এবং কার্যকর করে তোলে। ES5 এর মাধ্যমে জাভাস্ক্রিপ্ট এখন আরও সংগঠিত এবং রক্ষণাবেক্ষণযোগ্য হয়ে উঠেছে, যা বড় প্রজেক্ট এবং টিম-ভিত্তিক ডেভেলপমেন্টের ক্ষেত্রে অত্যন্ত উপকারী।

ES5 এর এই নতুন বৈশিষ্ট্যগুলো শিখে এবং ব্যবহার করে আপনি আপনার জাভাস্ক্রিপ্ট কোডকে আরও উন্নত এবং নির্ভরযোগ্য করতে পারবেন, যা আপনার প্রোগ্রামিং দক্ষতাকে নতুন উচ্চতায় পৌঁছে দেবে।

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion